/*  Class Disco:
    Descripcion: serializa todos los datos en disco
    Autor: david.castano.gonzalez
    Revisado: 19/11/2009 15:00 */


package disco;

import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Disk implements Serializable{

    Disk () {}

	/*{PRE:- }*/
    public void escribirEnDisco(String nombreArchivo, Object objeto) {

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(nombreArchivo);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Disk.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("ERROR CREANDO (FOS)");
        }
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(fos);
        } catch (IOException ex) {
            Logger.getLogger(Disk.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("ERROR CREANDO (OOS)");
        }
        try {
            oos.writeObject(objeto);
        } catch (IOException ex) {
            Logger.getLogger(Disk.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("ERROR ESCRIBIENDO OBJETO");
        }
        try {
            oos.close();
        } catch (IOException ex) {
            Logger.getLogger(Disk.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("IMPOSIBLE CERRAR OBJETO (OOS) ABIERTO EN ESCRIBIR");
        }
        try {
            fos.close();
        } catch (IOException ex) {
            Logger.getLogger(Disk.class.getName()).log(Level.SEVERE, null, ex);
            System.err.println("IMPOSIBLE CERRAR OBJETO (FOS) ABIERTO EN ESCRIBIR");
        }
        System.err.println("Holaaaaaaaaaa");
    }
	/*{POST: escribe en disco}*/

	/*{PRE: -}*/
    public Object leerDeDisco(String nombreArchivo) throws FileNotFoundException, IOException, ClassNotFoundException,NullPointerException {

        Object objeto = new Object();
        FileInputStream fis = null;

            fis = new FileInputStream(nombreArchivo);

        ObjectInputStream ois = new ObjectInputStream(fis);

                objeto = (Object) ois.readObject();

            ois.close();

            fis.close();

        return objeto;
    }
    /*{POST: lee en disco}*/


}
